package com.aspire.aimini.model.query;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 素材查询对象
 *
 * @author wangguiyou
 * @date 2024-01-01
 * @description 用于素材查询的参数封装类
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class MaterialQuery extends BaseQuery {

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 搜索关键词
     */
    private String keyword;

    /**
     * 标签筛选，多个标签用逗号分隔
     */
    private String tags;

    /**
     * 来源类型筛选(upload/generated)
     */
    private String sourceType;

    /**
     * 文件类型筛选
     */
    private String fileType;

    /**
     * 是否收藏
     */
    private Boolean isFavorite;

    /**
     * 是否归档
     */
    private Boolean isArchived;

    /**
     * 排序字段，默认createdTime
     */
    private String sortBy = "createdTime";

    /**
     * 排序方向，asc/desc，默认desc
     */
    private String sortOrder = "desc";

    /**
     * 最小文件大小
     */
    private Long minFileSize;

    /**
     * 最大文件大小
     */
    private Long maxFileSize;

    /**
     * 最小宽度
     */
    private Integer minWidth;

    /**
     * 最大宽度
     */
    private Integer maxWidth;

    /**
     * 最小高度
     */
    private Integer minHeight;

    /**
     * 最大高度
     */
    private Integer maxHeight;

    /**
     * 开始时间
     */
    private String startTime;

    /**
     * 结束时间
     */
    private String endTime;
}